﻿using System;
namespace ApiBetaSeries.Services
{
    public interface ISubtitleServices
    {
        /// <summary>
        /// Get all the last subtitles
        /// </summary>
        /// <param name="number">number of subtitiles you want (between 0 and 100)</param>
        /// <param name="type">VO/VF or VOVF</param>
        /// <returns>List of subtitles</returns>
        System.Collections.Generic.List<ApiBetaSeries.ISubtitle> GetLastSubtitles(int number = 100, ApiBetaSeries.SubtitleLanguage type = SubtitleLanguage.VOVF);
        /// <summary>
        /// Get the last subtitle of a show
        /// </summary>
        /// <param name="urlSerie">url of the show</param>
        /// <param name="number">number of subtitles you want (between 0 and 100) </param>
        /// <param name="type">VO/VF/VOVF</param>
        /// <returns>list of subtitles</returns>
        System.Collections.Generic.List<ApiBetaSeries.ISubtitle> GetLastSubtitles(string urlSerie, int number = 100, ApiBetaSeries.SubtitleLanguage type = SubtitleLanguage.VOVF);
        /// <summary>
        /// Get all the subtitles for a show
        /// </summary>
        /// <param name="urlSerie">url of the show</param>
        /// <param name="type">VO/VF/VOVF</param>
        /// <returns>List of subtitles</returns>
        System.Collections.Generic.List<ApiBetaSeries.ISubtitle> GetSubtitles(string urlSerie, ApiBetaSeries.SubtitleLanguage type = SubtitleLanguage.VOVF);
        /// <summary>
        /// Get all the subtitles for a specific season
        /// </summary>
        /// <param name="urlSerie">url of the show</param>
        /// <param name="season">season number of the episode</param>
        /// <param name="type">VO/VF/VOVF</param>
        /// <returns>List of subtitles</returns>
        System.Collections.Generic.List<ApiBetaSeries.ISubtitle> GetSubtitles(string urlSerie, int season, ApiBetaSeries.SubtitleLanguage type = SubtitleLanguage.VOVF);
        /// <summary>
        /// Get all the subtitles for a specific episode
        /// </summary>
        /// <param name="urlSerie">url of the show</param>
        /// <param name="season">season number of the episode</param>
        /// <param name="episode">episode number</param>
        /// <param name="type">VO/VF/VOVF</param>
        /// <returns>List of subtitles</returns>
        System.Collections.Generic.List<ApiBetaSeries.ISubtitle> GetSubtitles(string urlSerie, int season, int episode, ApiBetaSeries.SubtitleLanguage type = SubtitleLanguage.VOVF);
    }
}
